package com.electromagnetic.industry.software.manage.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.electromagnetic.industry.software.manage.pojo.models.EdFileInfo;
import com.electromagnetic.industry.software.manage.pojo.models.RolePermission;
import com.electromagnetic.industry.software.manage.pojo.req.PublishedFileDTO;

import java.util.List;

public interface RolePermissionService extends IService<RolePermission> {

    /**
     * 同步新权限
     *
     * @param currentPermission
     * @param infoId
     */
    void syncNewPermissions(List<RolePermission> currentPermission, String infoId);

    /**
     * 批量失效旧权限
     */
    void disableOldPermissions(List<RolePermission> oldPermissions);

    /**
     * 插入或激活新权限（使用 ON DUPLICATE KEY UPDATE 机制）
     */
    void insertOrUpdateNewPermissions(List<RolePermission> newPermission);

    /**
     * 获取新权限
     *
     * @param publishedFileDTO
     * @return
     */
    List<RolePermission> getCurrentPermission(PublishedFileDTO publishedFileDTO);

    /**
     * 在树形结构变动后同步权限
     *
     * @param prjId
     */
    void syncPermissionsAfterTreeUpdate(List<EdFileInfo> files, String prjId);

    /**
     * 逻辑删除
     *
     * @param roleId
     * @param fileId
     * @return
     */

    boolean logicRemove(String roleId, String fileId);
}
